package com.user.annotation;

/*
* @author 范铁凝
* @date 2024/6/18
* 接口限流注解
*/

import java.lang.annotation.*;

@Inherited
@Documented
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface AccessLimit {
    /*
     * 允许访问的次数，默认值为max_value
     * */
    int count() default Integer.MAX_VALUE;

    /*
     * 以第一次请求往后退时间为准
     * 例如第一次请求是在12：00点，请求时间设置一分钟
     * 在12：01分的时间段内访问次数超过count会报错，但是到12：01之后会重新开始计数，而不是以后不可访问
     * 时间段，单位为毫秒，默认值为一分钟
     * 考虑到以上因素，如果知识为了避免攻击，建议把time设置大一点，例如一分钟20次
     * 如果想要避免重复提交问题，需要且只能把Count设置成1，同时time设置小一点 例如一秒一次
     *
     * */
    int time() default 1;


}
